package com.example.creatation.prototype;

/**
 * 原型模式
 * 用于创建重复对象，同时又保证性能
 * 1. Mybatis:操作数据库，从数据库中查询很多记录70%改变很少
 * 2. 每次查询数据库，查询后封装一个对象 返回。
 *     10000 thread:查询一个记录，每次封装并返回
 *     系统中就会有10000个user；浪费内存
 * 3. 解决： 缓存：查询过的保存
 *         如果再查相同的对象 拿到原来的原型对象
 */
public class MainTest {
    public static void main(String[] args) {
        Mybatis mybatis = new Mybatis();
        User zs1 = mybatis.getUser("zs");
        System.out.println(zs1);
        zs1.setUsername("ls");
        User zs2 = mybatis.getUser("zs");
        System.out.println(zs2);
        zs1.setUsername("ls111");
        User zs3 = mybatis.getUser("zs");
        System.out.println(zs3);
        User zs4 = mybatis.getUser("zs");
        System.out.println(zs4);
    }
}
